package com.ddxz.tool.sql.parse;

import com.ddxz.tool.sql.parse.struct.ConditionInfo;
import com.ddxz.tool.sql.parse.struct.InOutMapping;
import com.ddxz.tool.sql.parse.struct.OrderInfo;
import com.ddxz.tool.sql.parse.struct.TableInfo;

import java.util.List;

/**
 * @description
 * @author 朱宗刚
 * @date 2019年10月23日
 * @version 1.0.0
 */

public interface SqlParse {
    /**
     * @param sql 待解析SQL语句
     */
    void initialize(String sql);

    /**
     * @return 从SQL语句中得到的结果清单
     */
    List<InOutMapping> getSelectList();

    /**
     * @return 从SQL语句中得到的表清单
     */
    List<TableInfo> getFrom();

    /**
     * @return 从SQL语句中提取参数信息
     */
    String getArgs();

    /**
     * @return 从SQL语句中解析得到的排序信息
     */
    List<OrderInfo> getOrderBy();

    /**
     * @return 从SQL语句中解析得到的过滤信息
     */
    List<ConditionInfo> getWhere();
}
